package com.kaifamiao.arrays;

import java.util.Arrays;

// 数组排序: 冒泡排序
public class BubbleSort {
    public static void main(String[] args) {
        int[] array = { 10, 2, 9, 3, 6, 7, 8, 4, 5, 1 };
        // 遍历数组
        for (int i = 0; i < array.length; i++) {
            System.out.printf("%d\t", array[i]);
        }
        System.out.println();

        // 冒泡排序
        for( int i = 0 ; i < array.length - 1 ; i++ ) {
            System.out.printf( "第%d轮\n" , i + 1 );
            for (int j = 0; j < array.length - 1 - i ; j++) {
                if (array[j] > array[j + 1]) {
                    array[j] ^= array[j + 1];
                    array[j + 1] ^= array[j];
                    array[j] ^= array[j + 1];
                }
                System.out.println("\t" + Arrays.toString(array));
            }
        }

        // 遍历数组
        for (int i = 0; i < array.length; i++) {
            System.out.printf("%d\t", array[i]);
        }
        System.out.println();

        // 使用冒泡排序对 char 数组进行排序
        // char[] chars = { 'k','a','i','f','a','m','i','a','o'}
        // 排序后的顺序是 a a a f i i k m o
    }
}
